package island.gotenyama.wand.utils;

import org.apache.commons.lang.StringUtils;

/**
 * WEBのユーティリティクラス
 * 
 * @author tk
 */
public abstract class AppsWebUtils {

	/**
	 * ビューの形式を表す列挙
	 * 
	 * @author tk
	 */
	public enum ViewType {

		/**
		 * HTML
		 */
		HTML,

		/**
		 * XML
		 */
		XML,

		/**
		 * JSON
		 */
		JSON;
	}

	/**
	 * ビューのタイプを判定する。
	 * 
	 * @param entry 判定元の文字列
	 * @return ビューのタイプ
	 */
	public static ViewType getViewType(String entry) {
		if (StringUtils.isBlank(entry)) {
			return ViewType.HTML;
		}
		ViewType viewType = ViewType.valueOf(entry.toUpperCase());
		if (viewType == null) {
			return ViewType.HTML;
		}
		return viewType;
	}

	/**
	 * SmartPhone
	 */
	public static final String[] SMART_PHONE_ARRAY = {

			// Apple iPhone
			"iPhone",

			// Apple iPad
			"iPad",

			// Apple iPod touch
			"iPod",

			// 1.5+ Android
			"Android",

			// Pre 1.5 Android
			"dream",

			// 1.5+ Android
			"CUPCAKE",

			// Storm
			"blackberry9500",

			// Storm
			"blackberry9530",

			// Storm v2
			"blackberry9520",

			// Storm v2
			"blackberry9550",

			// Torch
			"blackberry9800",

			// Palm Pre Experimental
			"webOS",

			// Other iPhone browser
			"incognito",

			// Other iPhone browser
			"webmate" };

	/**
	 * スマートフォンかを判定する。
	 * 
	 * @param entry 判定元の文字列
	 * @return スマートフォンならば真
	 */
	public static Boolean isSmartPhone(String entry) {
		if (StringUtils.isBlank(entry)) {
			return false;
		}
		for (String target : SMART_PHONE_ARRAY) {
			if (entry.contains(target)) {
				return true;
			}
		}
		return false;
	}
}
